package it.dgtest.server.ibatis.mapper;
import org.apache.ibatis.annotations.CacheNamespace;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.oa.gform.server.ibatis.GIBatisMapper;
import java.util.List;
import it.dgtest.shared.Comune;
																																					


/***
 * Autogenerato con DecGen.
 * Annotation mapper della tabella TComune
 * @author Marco
 *
 */
@CacheNamespace(readWrite = true)
public interface ComuneMapper extends GIBatisMapper<Comune,Long> {
	@Select("select * from TComune where idComune = #{idComune}")
    @Options(useCache = false, flushCache = false)
    Comune selectById(Long idComune);

	@Select("select * from TComune")
    List<Comune> selectAll();

	@Insert( { "insert into TComune(IdComune, Nome, IdProvincia, Cap)",
               "values(#{idComune}, #{nome}, #{idProvincia}, #{cap})" })
    int insert(Comune comune);

    @Delete("delete from TComune where IdComune =  #{idComune}")
    int delete(Comune comune);
    
    @Update( {"update TComune set IdComune=#{idComune}, Nome=#{nome}, IdProvincia=#{idProvincia}, Cap=#{cap}",
              "where  IdComune = #{idComune}" })
    int update(Comune comune);
    
    @Select("SELECT LAST_INSERT_ID() AS selectLastInsertedID")
    Long selectLastInsertedID();
}
